package com.learn.xueer.data.model.bean

import android.annotation.SuppressLint
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize

@SuppressLint("ParcelCreator")
@Parcelize
data class HearSayQuestionResponse(
    val resmain: String,
    val resource: HearSayQuestionResource
):Parcelable

@SuppressLint("ParcelCreator")
@Parcelize
data class HearSayQuestionResource(
    val totalScore: Int,
    val limitTime: Int,
    val versionId: String,
    val moduleId: String,
    val items: MutableList<HearSayQuestionResourceItem>
):Parcelable

@SuppressLint("ParcelCreator")
@Parcelize
data class HearSayQuestionResourceItem(
    val templateSettings: TemplateSetting,
    val scores: MutableList<ScoreInfo>,
    val questions: MutableList<QuestionInfo>
):Parcelable

@SuppressLint("ParcelCreator")
@Parcelize
data class TemplateSetting(
    val isPartView: Int,
    val content: String,
    val audioUrl: String,
    val questionNumber: Int,
    val infoRetail: Int,
    val listeningAndSpeakingRule: ListeningAndSpeakingRule
):Parcelable

@SuppressLint("ParcelCreator")
@Parcelize
data class ListeningAndSpeakingRule(
    val audioViews: Int,
    val lookTime: Int,
    val answerTime: Int,
    val readyTime: Int,
    val rootAudioViews: Int,
    val rootLookTime: Int,
    val rootReadyTime: Int
):Parcelable

@SuppressLint("ParcelCreator")
@Parcelize
data class ScoreInfo(
    val questionVersionId: String,
    val score: Double
):Parcelable

@SuppressLint("ParcelCreator")
@Parcelize
data class QuestionInfo(
    val type: Int,
    val versionId: String,
    val moduleId: String,
    val is_objective: Int,
    val trunk: TrunkInfo,
    val options: MutableList<OptionInfo>,
    val sort: String,
    val textModule: MutableList<TextModuleInfo>,
    val endAudioUrl: String,
    val answerAudioUrl: String
):Parcelable

@SuppressLint("ParcelCreator")
@Parcelize
data class TrunkInfo(
    val body: String,
    val content_id: String,
    val attachments: MutableList<AttachmentInfo>
):Parcelable

@SuppressLint("ParcelCreator")
@Parcelize
data class AttachmentInfo(
    val id: String,
    val name: String,
    val url: String,
    val fileType: Int,
    val position: Int
):Parcelable

@SuppressLint("ParcelCreator")
@Parcelize
data class OptionInfo(
    val id: String,
    val isAnswer: Int,
    val sort: String,
    val value: MutableList<TrunkInfo>
):Parcelable

@SuppressLint("ParcelCreator")
@Parcelize
data class TextModuleInfo(
    val questionStem: String,
    val textType: Int
):Parcelable

